Propiedades adicionales para tipos de datos elementales
Propiedades adicionales para tipos de datos elementales
TYPE
Colour : (red, yellow, green);
Sensor : INT (-56..128);
Measure : ARRAY [1..45] OF Sensor;
TestBench
STRUCT
Place : UINT;
Ligth : Colour:=red;
Meas1 : Measure;
Meas2 : Measure;
Meas3 : Measure;
END_STRUCT;
END_TYPE
TYPE
Colour : (red, yellow, green);
Sensor : INT (-56..128);
Measure : ARRAY [1..45] OF Sensor;
TestBench
STRUCT
Place : UINT;
Ligth : Colour:=red;
Meas1 : Measure;
Meas2 : Measure;
Meas3 : Measure;
END_STRUCT;
END_TYPE
Enumeration:
Colour puede tomar 1 de 3 valores posibles
TYPE
Colour : (red, yellow, green);
Sensor : INT (-56..128);
Measure : ARRAY [1..45] OF Sensor;
TestBench
STRUCT
Place : UINT;
Ligth : Colour:=red;
Meas1 : Measure;
Meas2 : Measure;
Meas3 : Measure;
END_STRUCT;
END_TYPE
Range:
Sensor es una variable de temperatura
puede tomar valores entre –56 y 128
TYPE
Colour : (red, yellow, green);
Sensor : INT (-56..128);
Measure : ARRAY [1..45] OF Sensor;
TestBench
STRUCT
Place : UINT;
Ligth : Colour:=red;
Meas1 : Measure;
Meas2 : Measure;
Meas3 : Measure;
END_STRUCT;
END_TYPE
Array:
Measure es un arreglo de datos tipo Sensor
Máximo soporta 45 datos
TYPE
Colour : (red, yellow, green);
Sensor : INT (-56..128);
Measure : ARRAY [1..45] OF Sensor;
TestBench
STRUCT
Place : UINT;
Ligth : Colour:=red;
Meas1 : Measure;
Meas2 : Measure;
Meas3 : Measure;
END_STRUCT;
END_TYPE
Structure:
TestBench es una estructura de datos compuesta
de datos elementales y derivados
ARRAY
Arrays son elementos, de un mismo tipo de datos,
ordenados consecutivos en memoria.
Los elementos del arreglos son accesados a través del índice
Los sistemas PLC deben generar mensajes de error en caso
de exceder el tamaño del arreglo
Se pueden crear arreglos de varias dimensiones
TYPE
Meas_1Dim : ARRAY[1..45] OF Sensor;
Meas_2Dim : ARRAY[1..10,1..45] OF Sensor;
END_TYPE
Data Structures
Se usan las palabras claves STRUCT y END_STRUCT
Puede contener tipos de datos elementales y/o derivados
Puede tener sub-elementos tipo estructura (anidadas)
La complejidad depende del programador y la aplicación
TYPE
LimitedRevol : UINT (0..230);
TypLevel : (Idling, SpeedUP1, SpeedUp2, MaxPower);
MotorState
STRUCT
Revolutions : LimitedRevol;
Level : TypLevel;
MaxReached : BOOL;
Failure : BOOL;
Brake : BYTE;
END_STRUCT;
END_TYPE
TYPE
MultiMotState : ARRAY [1..4] OF MotorState;
END_TYPE
VAR
(*Case 1:*)
Motor1 : MotorState;
(*Case 2:*)
Motors : ARRAY [1..4] OF MotorState;
(*Case 3:*)
FourMotors : MultiMotState;
END_VAR
Varias variables del mismo tipo estructura
TYPE
StructureA:
STRUCT
Element1 : INT;
Element2 : StructureB;
Element3 : BYTE;
END_STRUCT;
StructureB:
STRUCT
Elemen1 : LINT;
Element2 : StructureA;
Element3 : WORD;
END_STRUCT;END_TYPE
Ilegal: Recursividad de la estructura A
Valores Iniciales en la definición de tipos
TYPE
MotorState:
STRUCT
Revolutions : LimitedRevol:=0;
Level : TypeLevel:=Idling;
MaxReached : BOOL:=FALSE;
Failure : BOOL:=FALSE;
Brake : BYTE:=16#FF;
END_STRUCT;
END_TYPE
Valores Iniciales en la definición de tipos
VAR
Field1: ARRAY[1..12] OF SINT:=[3,16#FF,-5,-9,-5,-9,-5,-9,-5,-9,0,0];
Field2: ARRAY[1..12] OF SINT:=[3,16#FF,4(-5,-9),2(0)];
Text: STRING[4]:=‘stop’;
END_VAR
Forma Abreviada
Tipos de Datos Genéricos
Página anterior | Volver al principio del trabajo | Página siguiente |